
/**
 *
 * @author a100101
 */

/**
 * O design anterior sobrescrevia o método para o qual o subtipo (square) tinha comportamento diferente do supertipo (rectangle).
 * Neste novo design, ambos (square e rectangle) são subtipos de quadri.
 * O problema é resolvido através da implementação diretamente nas subclasses dos métodos problemático na superclasse.
 */

public class LspTest {

    private static Quadri getNewRectangle(){
        return new Square();
    }

    public static void main (String args[]) {
        Quadri r = LspTest.getNewRectangle();
        r.setWidth(5);
        r.setHeight(10);
        System.out.println(r.getArea());
    }

}
